#ifndef MINI_BASIC_OPERATORS_H
#define MINI_BASIC_OPERATORS_H

// Unary and binary funcs required, but not provided by std

#pragma once

#include "stdafx.h"
#include <functional>

namespace MiniBasic
{
    template<class T>
    struct Negate : public std::unary_function<T, T>
    {
    public:
        T operator()(const T& argType) const
        {
            return -argType;
        }
    };

    template<class T>
    struct Assign : public std::binary_function<T, T, T>
    {
    public:
        T operator()(T& first, const T& second) const
        {
            return first = second;
        }
    };
}

#endif
